// 2014年版权归Go作者所有。版权所有。
// 此源代码的使用受BSD样式的约束
// 可以在许可证文件中找到的许可证。

package list

import (
	"go/build"
)

type Context struct {
	GOARCH        string   `json:",omitempty"` // 目标体系结构
	GOOS          string   `json:",omitempty"` // 目标操作系统
	GOROOT        string   `json:",omitempty"` // 扎根
	GOPATH        string   `json:",omitempty"` // 走小路
	CgoEnabled    bool     `json:",omitempty"` // 是否可以使用cgo
	UseAllFiles   bool     `json:",omitempty"` // 使用文件而不考虑+生成行、文件名
	Compiler      string   `json:",omitempty"` // 编译器在计算目标路径时要假定
	BuildTags     []string `json:",omitempty"` // 生成约束以匹配in+生成线
	ToolTags      []string `json:",omitempty"` // 特定于工具链的构建约束
	ReleaseTags   []string `json:",omitempty"` // 版本当前版本与兼容
	InstallSuffix string   `json:",omitempty"` // 要在安装目录名称中使用的后缀
}

func newContext(c *build.Context) *Context {
	return &Context{
		GOARCH:        c.GOARCH,
		GOOS:          c.GOOS,
		GOROOT:        c.GOROOT,
		GOPATH:        c.GOPATH,
		CgoEnabled:    c.CgoEnabled,
		UseAllFiles:   c.UseAllFiles,
		Compiler:      c.Compiler,
		BuildTags:     c.BuildTags,
		ToolTags:      c.ToolTags,
		ReleaseTags:   c.ReleaseTags,
		InstallSuffix: c.InstallSuffix,
	}
}
